package com.saceem.imagenes.logica.propiedades;

import java.io.FileInputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

import javax.imageio.stream.FileImageInputStream;


public class PropiedadesProcesadorFacturas {

	private String rutaOrigen;
	private String rutaDestino;
	private String rutaError;

	private String servidorCorreo;
	private String usuarioCorreo;
	private String claveCorreo;
	private String destinatarioCorreo;
	private String cuentaOrigen;

	private int anchoCodigoBarra;
	private int altoCodigoBarra;

	private Map<String, String> prefijos;

	private int intervalo;

	private static PropiedadesProcesadorFacturas props = null;

	private PropiedadesProcesadorFacturas() {
		Properties info = new Properties();
		try {
			// info.load(PropiedadesProcesadorFacturas.class.getResourceAsStream("/recursos/configuracion.properties"));
			// info.load((new FileInputStream(System.getProperty("ic.home") +
			// "/recursos/configuracion.properties")));

			String os = System.getProperty("os.name");

			if (os.toUpperCase().contains("WIN")) {
				info.load((new FileInputStream(
						"C:/tmp/escaner/recursos/configuracion.properties")));
			} else {
				info.load((new FileInputStream(
						"/tmp/Nico/test/escaner/recursos/configuracion.properties")));
			}

			rutaOrigen = info.getProperty("ruta.origen");
			rutaDestino = info.getProperty("ruta.destino");
			rutaError = info.getProperty("ruta.error");

			servidorCorreo = info.getProperty("correo.servidor");
			usuarioCorreo = info.getProperty("correo.usuario");
			claveCorreo = info.getProperty("correo.clave");
			destinatarioCorreo = info.getProperty("correo.destinatarios");
			cuentaOrigen = info.getProperty("correo.cuentaorigen");

			anchoCodigoBarra = Integer.parseInt(info
					.getProperty("codigo.barras.ancho"));
			altoCodigoBarra = Integer.parseInt(info
					.getProperty("codigo.barras.alto"));

			intervalo = Integer.parseInt(info.getProperty("intervalo"));

			prefijos = new HashMap<String, String>();
			String aux = info.getProperty("prefijos");
			String[] prefijosAux = aux.split(";");
			for (int i = 0; i < prefijosAux.length; i++) {
				prefijos.put(prefijosAux[i], prefijosAux[i]);
			}

		} catch (IOException ex) {
			System.out.println(ex);
		}
	}

	public static PropiedadesProcesadorFacturas getInstance() {
		if (props == null) {
			props = new PropiedadesProcesadorFacturas();
		}
		return props;
	}

	public String getRutaOrigen() {
		return rutaOrigen;
	}

	public String getRutaDestino() {
		return rutaDestino;
	}

	public String getRutaError() {
		return rutaError;
	}

	public String getServidorCorreo() {
		return servidorCorreo;
	}

	public String getUsuarioCorreo() {
		return usuarioCorreo;
	}

	public String getClaveCorreo() {
		return claveCorreo;
	}

	public String getDestinatarioCorreo() {
		return destinatarioCorreo;
	}

	public int getAnchoCodigoBarra() {
		return anchoCodigoBarra;
	}

	public int getAltoCodigoBarra() {
		return altoCodigoBarra;
	}

	public boolean validarPrefijo(String valor) {
		return prefijos.containsKey(valor);
	}

	public int getIntervalo() {
		return intervalo;
	}

	public String getCuentaOrigen() {
		return cuentaOrigen;
	}
}
